部署
前提条件
在部署探针前,需要先确保本地浏览器时间与服务器时区、时间都一致。若有多个服务器,则要保证本地浏览器、多个服务器的时区、时间都一致。否则,可能会影响数据的准确性,例如拓扑不正确等。
UniAgent方式部署
当服务器上存在多种语言的应用时,推荐使用UniAgent安装,安装步骤请参见UniAgent部署说明。
UniAgent安装包内集成了Java/PHP/.NET/.NET Core/Node.js/Python 多个语言的探针,安装后不需要手工修改应用的配置文件,所有嵌入探针的动作均由UniAgent自动完成,并且可以自动监控Docker容器内的应用。
UniAgent方式默认仅支持应用编译成dll的方式,如果应用编译成为exe或bin,需修改./conf/interceptor.conf
文件
例如:.NetCore应用编译为了netcore-demo.exe应用, 如果想监控netcore-demo.exe,修改C:\Program Files\tingyun\monitor\conf\interceptor.conf
文件
netcore.namelist=w3wp,dotnet,netcore-demo.exe
- Windows操作系统
修改./conf/interceptor.conf
文件,保存配置文件,通过“任务管理器”或“服务”重启TingyunMonitor
服务,最后重启netcore-demo.exe应用。
- Linux操作系统
修改./conf/interceptor.conf
文件,保存配置文件,然后重启netcore-demo应用。
独立探针Windows部署
下载安装包 tingyun-agent-netcore-版本.exe。
双击安装包,配置license和collector地址,选择安装路径,进行安装。
更改.NET应用启动脚本,在应用启动脚本内增加call安装路径
\tingyun-enable.bat
。例如,原.NET应用启动脚本如下:... dotnet c:\interpub\myapp\myapp.dll
假设探针安装在C:\Program Files (x86)\Networkbench.COM\NetCore Profiler更改后的dotnet应用启动脚本如下:
... call "C:\Program Files (x86)\Networkbench.COM\NetCore Profiler\tingyun-enable.bat" dotnet c:\interpub\myapp\myapp.dll
重启应用。
如果应用采用部署到IIS上的模式,请同时安装 .NET 探针(tingyun-agent-dotnet-版本.exe),并启动.NET 探针图形化界面NBUI.EXE,点击“禁用监控”然后再点击“启用监控”。
独立探针Linux部署
下载安装包 tingyun-agent-netcore-版本.bin。
运行tingyun-agent-netcore-版本.bin,配置license和collector地址,选择安装路径,进行安装。
[user@localhost tmp]$ chmod +x tingyun-agent-netcore-版本.bin [user@localhost tmp]$ sudo ./tingyun-agent-netcore-版本.bin unzip to /usr/lib/tingyun-dotnet ... Enter license key (请录入授权码): Enter collector address (请录入collector地址):
支持静默安装,运行安装包时,使用选项--license和--collector。
sudo ./tingyun-agent-netcore-版本.bin --license=123-456-789 --collector=192.168.1.8:7665
更改应用启动脚本,在应用启动脚本内增加tingyun-enable。
如果使用root权限安装探针
在应用启动脚本内增加
. tingyun-enable
。例如,原.NET应用启动脚本如下:... dotnet /opt/myapp/myapp.dll
更改后的应用启动脚本如下:
... . tingyun-enable dotnet /opt/myapp/myapp.dll
如果使用普通用户权限安装探针
在应用启动脚本内增加 . /安装路径
/bin/tingyun-enable
。例如,原.NET应用启动脚本如下:... dotnet /opt/myapp/myapp.dll
假设探针安装在 /opt/tingyun/ 下,更改后的dotnet应用启动脚本如下:
... . /opt/tingyun/bin/tingyun-enable dotnet /opt/myapp/myapp.dll
如果使用systemd维护应用
在systemd配置文件内将探针环境变量增加到environment配置后面。
例如,原.NET应用配置文件如下:
[Service] ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll Type=notify Restart=on-failure
更改后的.NET应用配置文件如下:
说明:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。
[Service] ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll Type=notify Restart=on-failure Environment=CORECLR_ENABLE_PROFILING=1 Environment=CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}" Environment=CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"
通知systemd重新加载配置文件
systemctl daemon-reload
如果使用supervisor维护应用
在supervisor配置文件内将探针环境变量增加到environment配置后面。
例如,原.NET应用配置文件如下:
[program:superset] command=dotnet /opt/myapp/myapp.dll autostart=true startsecs=1 autorestart=true environment=ASPNETCORE_ENVIRONMENT=PRODUCT
更改后的.NET应用配置文件如下:
说明:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。
[program:superset] command=dotnet /opt/myapp/myapp.dll autostart=true startsecs=1 autorestart=true environment=ASPNETCORE_ENVIRONMENT=PRODUCT, CORECLR_ENABLE_PROFILING=1, CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}", CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"
通知supervisor重新加载配置文件
supervisorctl reread supervisorctl update
重启应用。
独立探针Docker部署
下载安装包 tingyun-agent-netcore-版本.bin到Dockerfile目录。
更改Dockerfile。
说明:脚本仅是举例说明,请酌情按照自己的实际情况修改。
FROM microsoft/dotnet:3.1.0-aspnetcore-runtime # web application RUN mkdir /app WORKDIR /app COPY publish /app ENV ASPNETCORE_URLS http://*:5000 # install tingyun agent COPY tingyun-agent-netcore-版本号.bin /tmp RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin RUN /tmp/tingyun-agent-netcore-版本号.bin --license=授权码 --collector=collector地址:端口 RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin # run web application with tingyun agent RUN echo "#! /bin/bash" > /app/run.sh RUN echo ". tingyun-enable" >> /app/run.sh RUN echo "export TINGYUN_APP_NAME=demo" >> /app/run.sh RUN echo "dotnet /app/demo.dll" >> /app/run.sh RUN chmod +x /app/run.sh ENTRYPOINT ["/app/run.sh"]
或
FROM microsoft/dotnet:3.1.0-aspnetcore-runtime # web application RUN mkdir /app WORKDIR /app COPY publish /app ENV ASPNETCORE_URLS http://*:5000 # install tingyun agent COPY tingyun-agent-netcore-版本号.bin /tmp RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin RUN /tmp/tingyun-agent-netcore-版本号.bin --license=授权码 --collector=collector地址:端口 RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin # setup env for tingyun agent ENV CORECLR_ENABLE_PROFILING 1 ENV CORECLR_PROFILER {8BEB2128-D285-4E1D-91B6-11ACD43EC0EE} ENV CORECLR_PROFILER_PATH /usr/lib/tingyun-dotnet/tingyun_profiler.so # setup application name ENV TINGYUN_APP_NAME=demo # run web application with tingyun agent ENTRYPOINT ["dotnet", "/app/demo.dll"]
重新编译镜像。
docker build .